import 'package:get/get.dart';

import '../../utils/constants.dart';
import '../modules/admin_login/bindings/admin_login_binding.dart';
import '../modules/admin_login/views/admin_login_view.dart';
import '../modules/b/b_home/bindings/b_home_binding.dart';
import '../modules/b/b_home/views/b_home_view.dart';
import '../modules/c/c_home/bindings/c_home_binding.dart';
import '../modules/c/c_home/views/c_home_view.dart';
import '../modules/chat/bindings/chat_binding.dart';
import '../modules/chat/views/chat_view.dart';
import '../modules/d/d_home/bindings/d_home_binding.dart';
import '../modules/d/d_home/views/d_home_view.dart';
import '../modules/d/d_index/bindings/d_index_binding.dart';
import '../modules/d/d_index/views/d_index_view.dart';
import '../modules/d/d_member/d_member_vipuser_index/bindings/d_member_vipuser_index_binding.dart';
import '../modules/d/d_member/d_member_vipuser_index/views/d_member_vipuser_index_view.dart';
import '../modules/d/d_my/bindings/d_my_binding.dart';
import '../modules/d/d_my/views/d_my_view.dart';
import '../modules/d/d_my_profile_detail/bindings/d_my_profile_detail_binding.dart';
import '../modules/d/d_my_profile_detail/views/d_my_profile_detail_view.dart';
import '../modules/d/d_my_user_job_card/bindings/d_my_user_job_card_binding.dart';
import '../modules/d/d_my_user_job_card/views/d_my_user_job_card_view.dart';
import '../modules/d/d_workbench/bindings/d_workbench_binding.dart';
import '../modules/d/d_workbench/views/d_workbench_view.dart';
import '../modules/e/e_home/bindings/e_home_binding.dart';
import '../modules/e/e_home/views/e_home_view.dart';
import '../modules/e/e_index/bindings/e_index_binding.dart';
import '../modules/e/e_index/views/e_index_view.dart';
import '../modules/e/e_my/bindings/e_my_binding.dart';
import '../modules/e/e_my/views/e_my_view.dart';
import '../modules/e/e_orders/bindings/e_orders_binding.dart';
import '../modules/e/e_orders/views/e_orders_view.dart';
import '../modules/not_found/bindings/not_found_binding.dart';
import '../modules/not_found/views/not_found_view.dart';
import '../modules/splash/bindings/splash_binding.dart';
import '../modules/splash/views/splash_view.dart';
import '../modules/user_login/bindings/user_login_binding.dart';
import '../modules/user_login/views/user_login_view.dart';
import 'router_auth.dart';

part 'app_routes.dart';

class AppPages {
  AppPages._();

  static const initial = Routes.splash;

  static final routes = [
    GetPage(
      name: _Paths.notFound,
      page: () => const NotFoundView(),
      binding: NotFoundBinding(),
    ),
    GetPage(
      name: _Paths.splash,
      page: () => const SplashView(),
      binding: SplashBinding(),
    ),
    GetPage(
      name: _Paths.cHome,
      page: () => const CHomeView(),
      binding: CHomeBinding(),
    ),
    GetPage(
      name: _Paths.bHome,
      page: () => const BHomeView(),
      binding: BHomeBinding(),
    ),
    GetPage(
      name: _Paths.dHome,
      page: () => const DHomeView(),
      binding: DHomeBinding(),
      middlewares: [
        RouteAuthMiddleware(ClientType.d.type),
      ],
    ),
    GetPage(
      name: _Paths.eHome,
      page: () => const EHomeView(),
      binding: EHomeBinding(),
    ),
    GetPage(
      name: _Paths.eIndex,
      page: () => const EIndexView(),
      binding: EIndexBinding(),
    ),
    GetPage(
      name: _Paths.eMy,
      page: () => const EMyView(),
      binding: EMyBinding(),
    ),
    GetPage(
      name: _Paths.eOrders,
      page: () => const EOrdersView(),
      binding: EOrdersBinding(),
    ),
    GetPage(
      name: _Paths.chat,
      page: () => const ChatView(),
      binding: ChatBinding(),
    ),
    GetPage(
      name: _Paths.userLogin,
      page: () => UserLoginView(),
      binding: UserLoginBinding(),
    ),
    GetPage(
      name: _Paths.adminLogin,
      page: () => AdminLoginView(),
      binding: AdminLoginBinding(),
    ),
    GetPage(
      name: _Paths.dIndex,
      page: () => const DIndexView(),
      binding: DIndexBinding(),
    ),
    GetPage(
      name: _Paths.dWorkbench,
      page: () => const DWorkbenchView(),
      binding: DWorkbenchBinding(),
    ),
    GetPage(
      name: _Paths.dMy,
      page: () => const DMyView(),
      binding: DMyBinding(),
    ),
    GetPage(
      name: _Paths.dMemberVipUserIndex,
      page: () => const DMemberVipuserIndexView(),
      binding: DMemberVipuserIndexBinding(),
    ),
    GetPage(
      name: _Paths.dMyProfileDetail,
      page: () => const DMyProfileDetailView(),
      binding: DMyProfileDetailBinding(),
    ),
    GetPage(
      name: _Paths.dMyUserJobCard,
      page: () => const DMyUserJobCardView(),
      binding: DMyUserJobCardBinding(),
    ),
  ];
}
